Ext.ns('Tm.role');
Tm.role.RoleIndexPanel = Ext.extend(Ext.Panel, {
			frame : true,
			autoWidth : true,
			// autoHeight : true,
			layout : 'fit',
			initComponent : function() {
				var form = new Tm.common.FormPanel({
							layout : 'table',
							layoutConfig : {
								columns : 3
							},
							defaults : {
								xtype : 'textfield',
								margins : '0 5 0 0'
							},
							items : [{
										plugins : [Ext.ux.FieldLabeler],
										name : 'name',
										fieldLabel : '角色名称'
									}, {
										plugins : [Ext.ux.FieldLabeler],
										name : 'enable',
										fieldLabel : '是否启用',
										editable : false,
										xtype : 'combo',
										mode : 'local',
										typeAhead : true,
										forceSelection : true,
										mode : 'local',
										triggerAction : 'all',
										emptyText : '请选择...',
										selectOnFocus : true,
										store : Tm.data.roleStates,
										colspan : 2
									}]
						});

				//var sm = new Ext.grid.CheckboxSelectionModel();
				var cm = new Ext.grid.ColumnModel([{
							header : 'id',
							width : 20,
							dataIndex : 'id',
							hidden : true
						}, {
							header : '角色名称',
							width : 80,
							dataIndex : 'name',
							sortable : true
						}, {
							header : '是否启用',
							width : 40,
							dataIndex : 'enable',
						//	align : 'center',
							xtype : 'combocolumn',
						    editor: new Ext.form.ComboBox({
									name : 'enable',
									fieldLabel : '是否启用',
									mode : 'local',
									editable : false,
									typeAhead : true,
									forceSelection : true,
									hiddenName : 'enable',
									mode : 'local',
									triggerAction : 'all',
									emptyText : '请选择...',
									selectOnFocus : true,
									store : Tm.data.roleStates,
									allowBlank : false
								}),
							sortable : true
						}]
						);
				cm.defaultSortable = true;
				var fields = [{
							name : 'id',
							type : 'int',
							mapping : 'id'
						}, {
							name : 'name',
							type : 'string',
							mapping : 'name'
						}, {
							name : 'enable',
							type : 'string',
							mapping : 'enable'

						}, {
							name : 'createTime',
							type : 'string',
							mapping : 'createTime'
						}];
				var ds = new Ext.data.Store({
							id : 'roleIndexPanelGridPanelStore',
							proxy : new Ext.data.HttpProxy({
										url : 'role/queryRole.do'
									}),
							reader : new Ext.data.JsonReader({
										totalProperty : 'totalProperty',
										root : 'root',
										id : 'id',
										fields : fields
									}),
							baseParams : {
								start : 0,
								limit : 20
							},
							sortInfo : {
								field : 'id',
								direction : 'ASC'
							},
							autoLoad : true,
											listeners: {
						        beforeload: function() {
						        	Ext.apply(this.baseParams, form.getForm().getFieldValues(false));
						        }
						    }
						}


				);


				var grid = new Ext.grid.GridPanel({
							store : ds,
							//sm : sm,
							cm : cm,
							border : false,
							stripeRows : true,
							autoHeight : true,
							viewConfig : {
								forceFit : true
							},
							bbar : new Ext.PagingToolbar({
										plugins : new Ext.ux.ProgressBarPager(),
										pageSize : 20,
										store : ds,
										displayInfo : true,
										emptyMsg : '没有记录'
									}),

						listeners: {
						        celldblclick: function(grid ,rowIndex,columnIndex,event) {
						        	 var store=grid.getStore();
   									 var data=store.getAt(rowIndex).data;
									 var roleUpdatePanel=new Tm.role.RoleAddPanel({
						            	dataId:data.id
						            });
											var roleAddWindow = new Tm.common.CommonWindow({
														id : 'roleAddWindow',
														title : '更新角色',
														width : 300,
														height : 400,
														plain : true,
														items : roleUpdatePanel
													});
											roleAddWindow.on('close', function(panel) {
														ds.load();
													});
											roleAddWindow.show();

										
						        }
						    }
						});
				var toolBar = new Ext.Toolbar({
							hideBorders : true,
							buttons : [{
										text : '查询',
										iconCls : 'act_queryIcon',
										handler : function() {
											ds.load();
										}
									}, {
										xtype : 'tbseparator'
									}, {
										text : '重置',
										iconCls : 'act_resetIcon',
										handler : function() {
											form.getForm().reset();
										}
									}, {
										xtype : 'tbseparator'
									}, {
										text : '新增',
										iconCls : 'act_addIcon',

										handler : function() {
											var roleAddPanel = new Tm.role.RoleAddPanel();
											var roleAddWindow = new Tm.common.CommonWindow({
														id : 'roleAddWindow',
														title : '新增角色',
														width : 300,
														height : 400,
														plain : true,
														// bodyStyle : 'padding:5px;',
														items : roleAddPanel
													});
											roleAddWindow.on('close', function(panel) {
														ds.load();
													});
											roleAddWindow.show();

										}
									}]
						});
				Ext.apply(this, {
							tbar : toolBar,
							items : [form, grid]
						});
				Tm.role.RoleIndexPanel.superclass.initComponent.call(this);
			}
		});
